#include "Interface_HX710.h"

//初始化HX710模块
void Interface_HX710_Init(void)
{
    Driver_GPIOC_Init();
}

//获取气压值
uint32_t Interface_HX710_GetValue(void)
{
    //用于存放结果
    uint32_t count = 0;

    ADSK_LOW;
    Delay_us(2);
    while(READ_ADDO);
    Delay_us(2);
    for (uint8_t i = 0; i < 24; i++)
    {
        ADSK_HIGH;
        Delay_us(2);
        count = count << 1;
        ADSK_LOW;
        Delay_us(2);
        if (READ_ADDO) count++;
            
    }
    ADSK_HIGH;
    Delay_us(2);
    count = count ^ 0x800000;
    ADSK_LOW;
    Delay_us(2);

    return count;
}




// 参考代码(C51)
// sbit ADDO = P1 ^ 5;
// sbit ADSK = P0 ^ 0;
// unsigned long Readcount(void)
// {
//     unsigned long count;
//     unsigned char i;
//     ADDO = 1; // 非51 类MCU，略去此行
//     ADSK = 0;
//     count = 0;
//     while (ADDO)
//         ;
//     for (i = 0; i < 24; i++)
//     {
//         ADSK = 1;
//         count = count << 1;
//         ADSK = 0;
//         if (ADDO)
//             count++;
//     }
//     ADSK = 1;
//     count = count ^ 0x800000;
//     ADSK = 0;
//     return (count);
// }
